package com.yuandian.base.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.bpm.common.data.datascope.BpmScope;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 说明：通用接口mapper
 * @Author zfsn
 * @Date 2023/2/16 17:15
 */
@Mapper
public interface CommonMapper {

	/**
	 * 一般查询，指定权限参数表示带权限的一般查询
	 * @param sql 可直接执行的sql
	 * @param bpmScope bpm数据权限范围
	 * @return 结果集
	 */
	@Select("${sql}")
	List<Map<String, Object>> list(@Param("sql") String sql, BpmScope bpmScope);

	/**
	 * 分页查询，指定权限参数表示带权限的分页查询
	 * @param page 分页参数
	 * @param sql 可直接执行的sql
	 * @param bpmScope bpm数据权限范围
	 * @param <T> 返回类型
	 * @return 分页对象
	 */
	@Select("${sql}")
    <T> Page<Map<String, Object>> page(Page<T> page, @Param("sql") String sql, BpmScope bpmScope);
}
